package net.weitalk.patterns.visitor.stage1;

import java.util.List;

public class ToolApplication {
    public static void main(String[] args) {
        List<ResourceFile> resourceFiles = List.of(
                new PdfFile("a.pdf"), new PPTFile("b.ppt"), new WordFile("c.doc")
        );
        Extractor extractor = new Extractor();
        for (var file : resourceFiles) {
            // 多态是一种动态绑定，可以在运行时获取对象的实际类型，来运行实际类型对应的方法。
            // 而函数重载是一种静态绑定，在编译时并不能获取对象的实际类型，而是根据声明类型执行声明类型对应的方法。
            // 下面的调用无法通过编译。
//            extractor.extract2txt(file);
        }
    }
}
